package string;
/**
 * String是不变对象-对象创建后内容不可改变
 * JVM对字符串有一个优化:常量池
 * java推荐我们使用字面量创建字符串对象，并且会将其缓存在常量池中，当我们再次使用该字面量创建
 * 字符串时会重用对象减少内存的不必要开销。
 */

public class StringDemo {
    public static void main(String[] args) {
        String s1="123abc";//java建议使用字面形式创建字符串
        String s2="123abc";//相同字面量会重用对象，s2重用了s1对象
        System.out.println("s1:"+s1);
        System.out.println("s2:"+s2);
        System.out.println(s1==s2);//地址相同证明s2使用了s1的对象

        String s3= "123abc";
        System.out.println("s3="+s3);
        System.out.println(s1==s3);

        String s4=new String("123abc");
        System.out.println("s4="+s4);
        System.out.println(s1==s4);

        String s5 ="123"+"abc";
        System.out.println("s5:"+s5);
        System.out.println(s1==s5);
        String s="123";
        String s6=s+"abc";
        System.out.println(s1==s6);





    }
}
